home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Light ROM 1
/
LIGHT-ROM 1 (Amiga Library Services)(1994).iso
/
ffdisks
/
d970.lha
/
ADM
/
ARexx
/
ADR-Laden.bt2
< prev
next >
Wrap
Text File
|
1993-08-30
|
7KB
|
305 lines
/****************************************/
/* */
/* BT-II_ADM V_2 28.08.1993 */
/* */
/* Starten von AddressMaster via BT-II */
/* */
/* Einlesen von Adressen via ADM. */
/* */
/* Ein ARexx-Programm von */
/* Peter Humm, CH-9203 Niederwil */
/* */
/* In Anlehnung an ein Script von */
/* Carsten Fulde. */
/* */
/****************************************/
/* $VER: ADR-LOAD.bt2 (28.7.93)
In BeckerText-II an gewünschter Stelle VORNAME NAME eintippen und
Cursor auf dieser Zeile stehenlassen. Dieses Script erwartet den
Eintrag auf der Zeile 9 !
Es reicht auch bloss ein Eintrag. Er wird als NAME interpretiert.
So werden auch Adressen gefunden, bei denen kein Vorname eingege-
ben wurde, z.B. Firmen.
Nun ADR-Laden.bt2 aufrufen. *ADM* wird gestartet, sofern er nicht
schon läuft. Nach der Adressen-Suche wird er wieder ausgeschaltet,
damit das Fenster auf der WB verschwindet. Vielleicht baut uns ja
Jan noch den Befehl SLEEP in den ARexxPort ein (entspr. TAB).
Das Arexx-Script akzeptiert WildCards wie Geiss* oder auch bloss
Teile des Vor- und Zunamens. 'J Geiss' wird wie auch 'Jan issle'
von *ADM* richtig als Jan Geissler interpretiert.
Dreiteilige Namen wie Jan M. Mustermann werden ebenfalls erkannt.
So führt 'J M Must' zum selben Ergebnis, es sei denn, es befinde
sich vorher noch ein Jürg M. Muster in der Datei ;-))
Es ist möglich, zwei Adressen unter gleichen Namen abzuspeichern.
Wenn also Name und Vorname von zwei Einträgen identisch sind, zeigt
BT-II die erste Adresse an und fragt, ob die erste oder die zweite
eingetragen werden soll. Wird 'Nächste' gewählt, löscht BT-II den
ersten Eintrag und ersetzt ihn durch den zweiten (eigentlich logisch).*/
/* DAS SCRIPT */
/* Nachsehen, ob AddressMaster schon */
/* läuft. Wenn nicht, dann starten */
if ~show("P",ADM.1) = 1 then do
/* Einschalten des CLI */
address command
/* Starten von ADM wie von WB, also */
/* mit den ToolTypes. */
/* Das Programm WBRun sollte beiliegen */
/* sonst findet Ihr es auf Fish_843. */
/* Kopiert es in's C: */
'wbrun dh0:Office/ADM/AddressMaster'
/* Auf langsameren Amigas muss hier */
/* eine Wartezeit eingegeben werden, */
/* damit *ADM* auch tatsächlich bereit */
/* ist, wenn die Suche startet. */
address command 'wait 5'
end
/* Scharfstellen von BT-II */
address 'bt2'
options results
/* Aktuelle Zeile einlesen. */
/* Geht m.W. erst ab BT-II V_1.13 */
'WYSIWYG' 0
'GET' 'line'
/* Zeile zerlegen in Vorname und Name */
/* Feststellen der Anzahl Worte. Es */
/* wird nur das erste und letzte Wort */
/* ausgewertet. */
line = result
zahl = words(line)
eins = subword(line,1,1)
zwei = subword(line,zahl)
/* allf. Carriage-Returns abschneiden */
ret = D2C(13)
eins = compress(eins,ret)
zwei = compress(zwei,ret)
/* Falls kein Vorname eingegeben wird, */
/* muss dieser Suchbegriff gelöscht */
/* werden. */
if zwei = eins then eins = ""
/* WildCards anfügen. */
/* Erleichtert die Suche z.B. bei */
/* Doppelnamen */
eins = "*"eins"*"
zwei = "*"zwei"*"
/* Datensatz nach dem Namen suchen. */
/* Hier der erste. */
fst = 1
res = 0
/* Suchparameter übergeben */
ADM.FIRSTNAME = eins
ADM.LASTNAME = zwei
/* Endlos-Schleife / Such-Routine */
do forever
/* Jetzt ADM.1 aktivieren */
address 'ADM.1'
/* Suche ab 1. Adresse und Ablage in */
/* der STEM.Variable RESAD */
SEARCH fst ADM
res = RESULT
/* Abfrage Fehlermeldung. Wenn o.k. */
/* dann Eintrag der Adresse in BT-II */
/* Andernfalls Abbruch der Suche. */
if res >-1 then
do
/* Erste passende Adresse einlesen. */
GETADDRESS RESAD
/* Nächsten Eintrag aktivieren und als */
/* Stamm-Variable RESAD1 einlesen */
ACTIVATENEXT
GETADDRESS RESAD1
/* Falls Name UND Vorname identisch */
/* sind, erste gefundene Adresse ins */
/* Dokument übertragen. */
if (RESAD.FIRSTNAME = RESAD1.FIRSTNAME) + (RESAD.LASTNAME = RESAD1.LASTNAME) = 2 then do
address 'bt2'
call Einsetzen
/* Abfrage, ob die erste oder zweite */
/* Adresse gewünscht wird. */
GET 'string Diese Nächste Hier_gibt_es_noch_eine_weitere_Adresse._ _____Welche_soll_ich_einsetzen ??_'
/* Wird die zweite gewählt, muss die */
/* bereits eingetragene erst gelöscht */
/* werden. Sonst Script abbrechen. */
if result = 'Nächste' then do
GOTO 9
/* Adressen-Block markieren und dann */
/* ausschneiden. */
'6MARK' down
'BCUT'
/* Die nächste Adresse wird aus *ADM */
/* geholt und wie gewohnt eingetragen. */
address 'ADM.1'
GETADDRESS RESAD
address 'bt2'
call Einsetzen
call Fertig
end
else call Fertig
/* Abbruch, wenn die erste Adresse */
/* bestätigt wird. */
end
else do
/* Wenn Adresse nur einmal vorhanden, */
/* eintragen und Skript beenden. */
call Einsetzen
call Fertig
end
end
else do
/* Meldung, dass Adresse nicht ge- */
/* funden und Abbruch der Suche. */
address 'bt2'
GET 'string OK OK >->->->__Adresse_nicht_gefunden_<-<-<-< __________Na dann eben nicht_!!'
call Fertig
end
end
/* Ausschalten von *ADM* und Rückkehr */
/* zu BeckerText-II. */
Fertig:
Address 'ADM.1'
QUIT
exit
return
/* Diese Routine plaziert die Zeilen */
/* der Adresse richtig im Dokument. */
Einsetzen:
address 'bt2'
/* Aktuelle Zeile markieren und dann */
/* ausschneiden. */
'MARK' 'line'
'BCUT'
/* Adresse in Dokument eintragen */
INSERT RESAD.SALUTATION
INSERT "\r"
if RESAD.FIRSTNAME ~= '' then do
INSERT RESAD.FIRSTNAME
INSERT "320820"x
end
INSERT RESAD.LASTNAME
INSERT "\r"
if RESAD.ADDRESS1 ~= '' then do
INSERT RESAD.ADDRESS1
INSERT "\r"
end
if RESAD.ADDRESS2 ~= '' then do
INSERT RESAD.ADDRESS2
INSERT "\r"
end
INSERT RESAD.POSTCODE
INSERT "320820"x
INSERT RESAD.CITY
INSERT "\r"
INSERT RESAD.COUNTRY
INSERT "\r"
/* Dokument unter der Adresse säubern */
/* und geeignete Zeichen- und Absatz- */
/* formate wählen. */
/* Der Cursor befindet sich danach auf */
/* Zeile 19, wo sich bei mir jeweils */
/* die Betreff-Zeile befindet. */
INSERT "\r\r\r\r\r\r\r\r"
'GOTO' 19
'10MARK' down
'BCUT'
'FOS' 'z STANDARD1'
'FOS' 'a STANDARD1'
'BOTTOM'
return